package controlador;

import classes.Servidor;
import erro.ConexaoException;
import erro.ConsultaException;
import fachada.Fachada;

/**
 *
 * @author Roberta
 */
public class LoginControlador {

    public static String login;
    public static String senhaAtual;
    public static int nivel;
    public static String nome;
    private String senha;
    private String situacao;

    /**
     * @return the login
     */
    public String getLogin() {
        return login;
    }

    /**
     * @param login the login to set
     */
    public void setLogin(String login) {
        LoginControlador.login = login;
    }

    /**
     * @return the senha
     */
    public String getSenha() {
        return senha;
    }

    /**
     * @param senha the senha to set
     */
    public void setSenha(String senha) {
        this.senha = senha;
    }

    /**
     * @return the situacao
     */
    public String getSituacao() {
        return situacao;
    }

    /**
     * @param situacao the situacao to set
     */
    public void setSituacao(String situacao) {
        this.situacao = situacao;
    }

    /**
     * Verifica se existe no banco de dados o login e senha digitados pelo usuário.
     * @throws ConsultaException
     * @throws ConexaoException 
     */
    public void validar() throws ConsultaException, ConexaoException {
        Servidor s = new Servidor();
        Fachada f = new Fachada();
        s.setLogin(LoginControlador.login);
        f.pesquisarLogin(s);
        if (LoginControlador.login.equalsIgnoreCase(s.getLogin()) && LoginControlador.senhaAtual.equals(s.getSenha())) {
            setSituacao("logado");
            LoginControlador.nome = s.getNomeExibicao();
            LoginControlador.nivel = s.getNivelAcesso();
        } else {
            setSituacao("deslogado");
        }
    }

    /**
     * 
     * @throws ConsultaException
     * @throws ConexaoException 
     */
    public void criarSenha() throws ConsultaException, ConexaoException {
        Servidor s = new Servidor();
        Fachada f = new Fachada();
        s.setLogin(LoginControlador.login);
        f.pesquisarLogin(s);
        if (LoginControlador.login.equals(s.getLogin())) {
            if (s.getSenha() == null) {
                s.setSenha(getSenha());
                f.criarSenha(s);
                setSituacao("criou");
            } else {
                setSituacao("existente");
            }
        }
    }

    /**
     * Altera a senha do usuário.
     * @throws ConsultaException
     * @throws ConexaoException 
     */
    public void alterarSenha() throws ConsultaException, ConexaoException {
        Servidor s = new Servidor();
        Fachada f = new Fachada();
        s.setLogin(LoginControlador.login);
        f.pesquisarLogin(s);
        if (LoginControlador.login.equals(s.getLogin())) {
            if (LoginControlador.senhaAtual.equals(s.getSenha())) {
                s.setSenha(getSenha());
                f.criarSenha(s);
                setSituacao("criou");
            }
        } else {
            setSituacao("nao");
        }
    }
}
